查看原文
其他

敏捷测试流程千万种,开发测试协作第一条

Test Ninja 软件质量报道 2022-11-04

流程一直是挺重要的,之前从人们大力推广CMMI、过程改进就略见一斑,即使今天许多大厂还设有过程改进专家,这篇文章 她们才是这个时代的女神:以亲身体验谈女性职业成长和女性领导力 中第一位女神陈玲就是平安集团过程改进专家,不是传统的CMMI那样的过程改进,而是通过敏捷转型,将精益、DevOps等流程引入,从而提升软件研发的效能和质量。
流程之所以重要,因为流程可以理解为实施框架,让软件研发过程一目了然,使企业能够把握全局,指导团队如何开展工作,知道从哪里开始、在哪里结束,让整个软件研发运作处在有序状态。例如,在敏捷开发中,有众多的落地模式,比如水晶方法、极限编程、Scrum、自适应软件开发、动态系统开发方法等,但 Scrum 给了一个清晰、简单的流程,很容易理解 Scrum 是如何运作的,所以就容易被大家所接受。今天我们谈起敏捷,你肯定会想到 Scrum。

敏捷测试的通用流程很多,例如,我之前提出的(10年前发表在《程序员》杂志上的模型),敏捷测试就是持续测试:
图1   

还有刘冉老师写的 ThoughtWorks的敏捷测试 中介绍的敏捷测试流程:
图2

如果看国外的,倒是不如我们,似乎还只是停留在瀑布模型上,是伪敏捷。
图3
如果讲究测试策略,如包含一页纸计划、自动化测试和探索式测试完美融合,就形成下面的流程。这个流程在我的《全程软件测试(第3版)》和高效敏捷测试49讲 中都有详细介绍:
图4

如果是采用敏捷中Scrum模式,测试的流程可能是这样的:
图5
你感觉我在欺骗你,这不是和瀑布模型的测试类似——线性往前推进,是伪敏捷吗?但仔细看这流程,里面的确有不少Scrum的元素,如Sprint Backlogs、Sprint Criteria、Sprint Scrum Meeting和Sprint Demo等。
好一点的Scrum流程如下面图6所示 ,看起来复杂,其实也不复杂,它只是涵盖了2.5个迭代。如果只看其中一个迭代,那就是:
  • 第1周:需求分析、测试用例设计、测试用例评审和修改;
  • 第2周:测试用例设计、测试用例执行
  • 第3周:测试执行(交付执行日志)、报告Bug重测试(交付新报的和关闭的Bug清单)、理解下个迭代的需求...
这样看了之后,可能也会觉得这也是一个伪敏捷测试流程,没有创新,没有敏捷的思维,所以“测试常常成为敏捷的瓶颈” 自然会发生 
图6

在 Scrum 迭代中,对测试真正有指导价值的流程,倒是我在高效敏捷测试49讲 第4讲中 详细介绍的模型,如图 7 所示。

 图7

下面就来详细讲解这张图的具体含义。从图7中可以看出,Scrum 模式下的敏捷测试流程有 7 项主要活动——测试需求分析与定义、测试计划、测试设计、BVT(Build Verification Test)、持续测试、版本验收测试、测试交付与反思等,但不能理解为 7 个阶段,许多活动都是并行的,包括计划、设计都是贯穿整个迭代。下面就是 高效敏捷测试49讲 中第4讲详细的文字说明(省去了一大半文字)
  1. 测试需求分析与定义,对用户故事(User Story,US)、Epic 等进行评审,为每一个用户故事建立验收标准,确保它具有可测试性,并从业务需求出发,了解要做哪些测试,初步界定测试的范围等。
  2.  测试计划,...... 

  3. 测试设计 ... ... 第 32、38 讲会讨论探索式测试,完全可以不写测试用例。

  4. BVT,版本构建(Build)的验证测试,即只要有版本构建,不管是每日构建,还是代码提交触发的软件版本构建,都需要对软件版本进行自动验证,因为只有高成功率的持续集成才有意义。这里的 BVT,不仅包含传统的冒烟测试,即对当前软件版本实现的基本功能进行测试,而且包括对代码进行扫描,检查代码的规范性、安全性等,即通常所说的代码静态分析。

  5. 持续测试,是迭代中主要的活动,根据前面案例所讲的,测试的问题常常出在这里,让测试成为持续交付的瓶颈,就是没能做到持续测试。究竟什么是持续测试,本讲后面会有进一步的说明。这里包括设计评审、单元测试、用户故事实现的验证、集成测试等,包含持续的新功能测试和持续的回归测试,也包括性能测试、安全性测试、兼容性测试等专项测试。

  6. 版本验收测试 ......

  7. 测试交付与反思,...... 在第 46、47、49 讲中讨论。


如果再进一步,涵盖 测试驱动开发(Test Driven Development, TDD)的具体落地,更准确地说,是验收测试驱动开发(Acceptance Test Driven Development , ATDD)落地之后的流程,将更有价值。ATDD/BDD 在第 20、24 讲中有详细讨论。


如同标题 “敏捷测试流程千万种,开发测试协作第一条” 所说,开发测试协作才是最重要的,这也是敏捷的最基本的价值观。关于这个主题内容,在高效敏捷测试49讲  第11讲中有详细讨论。


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存